package com.ruoyi.management.service;

import com.ruoyi.management.pojo.param.AmmeterParam;
import com.ruoyi.management.pojo.param.StartAssociationParam;
import com.ruoyi.management.pojo.param.ZtParam;
import com.ruoyi.management.pojo.po.AmmeterResultPo;
import com.ruoyi.management.pojo.vo.*;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Service
public interface AmmeterService {
    // 选择载体下拉树
    List<ZTVO> selectZtTree(ZtParam ztParam);
    //弹窗选择载体
    List<ZTVO> selectzt(ZtParam ztParam);
    //添加电表
    int add(AmmeterParam ammeterParam);
    //选房弹窗
    List<RoomVO> selectHouse(AmmeterParam ammeterParam);
    //企业关联弹窗
    List<EnterpriseVO> enterprise(AmmeterParam ammeterParam);
    //日度报表选择初始电量弹窗
    List<AmmeterResultVO> startDayPower(AmmeterParam ammeterParam);
    //启动关联电表
    boolean startAssociation(StartAssociationParam startAssociationParam);
    //显示关联客户的电表信息
    List<AmmeterResultVO> updateRoom(AmmeterParam ammeterParam);
    //退用取关
    boolean withdraw(StartAssociationParam startAssociationParam);
    //显示空闲列表筛选
    List<AmmeterResultVO> freeListFilter(AmmeterParam ammeterParam);
    //显示使用列表筛选
    List<AmmeterResultVO> useListFilter(AmmeterParam ammeterParam);
    //显示客户出租房源
    List<AmmeterResultVO> stqyyData(AmmeterParam ammeterParam);
    //关联房间更新
    int updateRoomAa(AmmeterParam ammeterParam);
    //添加智联器
    int selectzl(ZtParam ztParam);
    //显示所有智联器
    List<ZlVO> selectAllZt(ZtParam ztParam);
    //添加载体
    int addZt(ZtParam ztParam);
    //修改载体
    int updateZt(ZtParam ztParam);
    //查看所有电表
    List<AmmeterResultVO> selectAllAmmeter(String dbbh,String zlid, String zt);
    //查看智联器详情
    ZlVO selectztx(String zlid);

    List<AmmeterResultVO> selectzldb(String zlid);
    //显示电表详情
    AmmeterXQVO selectAmmeterx(String dbbh);

    List<DbysyVO> selectMeterList(String date, String tgszt,Integer yxa,String zt);
    //开关闸
    Boolean switchAmmeter(String dbbh,Integer tNumber);

    BigDecimal selectAllPower(String month, String zt, String lc);

    BigDecimal selectTenantPower(String month, String zt, String lc);

    BigDecimal selectPublicPower(String month, String zt, String lc);

    AmmeterResultPo getClosestAmmeterData(String dbbh);

    BigDecimal selectSelfPower(String month, String zt, String lc);

    DbkhhkbVO selectProjectPower(String month, String zt);

    List<DbkhhsjbVO> selectTenantPower1(String qymc, String zt);

    Boolean startPower(String dbbh, BigDecimal dbz, Date timestamp);

    Boolean updateYt(String dbbh, String dbyt);
}
